To help me insert records and translate our Mongo JSON records, I created a couple of classes. This is just an example to show off a very simple approach for managing SQL-like objects in python.
class User():
def __init__(self, user, format='json'):
"""Load in json data into our object
Args:
user - serialized object
format (str) - what format is the serialized object
"""
if format == 'json':
self.load_json(user)
def load_json(self, user):
"""Load data from JSON object
Args:
user (dict) - json of object
"""
self.created_at = parse(user['created_at'])
self.description = user.get('description', None)
self.favorites_count = user.get('favourites_count', None)
self.friends_count = user.get('friends_count', None)
self.id = user['id_str']
self.listed_count = user.get('listed_count', None)
self.location = user.get('location', None)
self.name = user['name']
self.screen_name = user['screen_name']
self.statuses_count = user['statuses_count']
self.url = user.get('url', None)
self.verified = user.get('verified', None)
def get_values(self):
"""Get the values used for inseritng a SQL record
Returns:
tuple - tuple in ordered format for SQL table
"""
values = (self.created_at, self.description, self.favorites_count,
self.friends_count, self.id, self.listed_count, self.location,
self.name, self.screen_name, self.statuses_count, self.url, self.verified)
return values
def get_insert_query(self):
"""Get the string SQL insert statement
Returns:
str - insert statement
"""
user_insert = f"""INSERT INTO users VALUES (%s, %s, %s, %s, %s, %s, %s, %s,
%s, %s, %s, %s)"""
return user_insert
def existence_query(self):
"""Checks if the object already exists in the database
Returns:
str - existence query
"""
user_exists = f"""SELECT user_id FROM users WHERE user_id={self.id}"""
return user_exists